/*
 * Encriptador.h
 *
 *  Created on: 10/09/2010
 *      Author: julfc
 */

#ifndef ENCRIPTADOR_H_
#define ENCRIPTADOR_H_

#include <vector>
#include <string>
#include <cstring>
#include "../moduloConsultas/ManejadorConfiguracion.h"
#include "../moduloConsultas/Parser.h"
#include "Matriz.h"
#include "Md5.h"

using namespace std;

class Encriptador {

private:

public:
	Matriz* matriz;
	Matriz* matrizInversa;
	int tamanioMatriz;
	long tamanioBloque;

	Encriptador();
	int Hash1(string clave);
	int Hash2(string clave);
	long InversaMOD(long num);
	int getTamanioMatriz();
	long getTamanioBloque();
	void nuevoEncriptar(char* bloque);
	void nuevoDesencriptar(char* bloqueEncriptado);
	void encriptarPosta(char* bloque);
	void desencriptarPosta(char* bloqueEncriptado);
	void ImprimirMatriz();
	void ImprimirMatrizInversa();
	virtual ~Encriptador();
};

#endif /* ENCRIPTADOR_H_ */
